JAWS-UG CLI専門支部でJMESPathについてLTしてきました
西澤です。昨日のJAWS-UG CLI専門支部にてJMESPathについて思いつきでLTしてみました。jsonの文字列操作はjqを使われている方が多いとは思うのですが、少しでもJMESPathに興味を持ってもらえれば、とお話させていただく時間をいただきました。
- Python版AWS CLI 1.3の強化されたqueryオプションを使いこなすスニペット4つ | Developers.IO
- JMESPath — JMESPath
- JMESPath — JMESPath 0.7.1 documentation
発表資料
やっつけで作成した資料で恥ずかしいのですが、発表で使用した資料はこちらです。
発表内容
資料では、JMESPathを使ってどんな表現が可能なのかを実例ベースでお話しました。組み込み関数を利用すれば、AND条件やソート、joinによるCSV出力もできるという例をご紹介しました。必ずしも使いやすくできているものばかり、とは言えないのも正直なところですが、1行コマンドでどこまでできるかというところで、今後も使える組み込み関数やその組み合わせがないか色々と試して行きたいと思います。
比較的よく見るもの
- 配列の1つ目だけ
- 配列の特定のKeyのみ
- 配列の要素数
- 配列のKeyで完全一致
- 配列のKeyで部分一致
もう少し広めたいオプション
- 配列の何番目まで、何番目からの要素
- パイプでAND条件
- ソート
- 区切り文字でジョイン
まとめ
AWS CLIを使っていると、参照系コマンドから特定の情報を色々な形式で取得したいケースがあると思います。使い慣れていない方は苦戦するところもあるとは思いますが、JMESPathを調べ、触っているだけで、いつの間にかjsonと仲良くなれますので、ぜひ試してみてください。このような勉強会での情報交換を通じて、より多くの方とつながっていけたら嬉しいです。